Dynamic display using pushed-streamed data

ABSTRACT

A system and method for dynamic updating of display windows using a pushed stream of data.

CROSS-REFERENCE TO RELATED APPLICATIONS

This application is a divisional of, and takes priority from, co-pending U.S. patent application Ser. No. 11/758,076, filed Jun. 5, 2007, which claims benefit of U.S. Provisional application Ser. No. 60/811,519, filed Jun. 5, 2006, from which priority is asserted, and the contents of which are herein incorporated by reference in their entirety.

BACKGROUND OF THE INVENTION

1. Field of the Invention

The present invention generally relates to a system and method for dynamic updating of display windows using a pushed stream of data.

2. Description of the Related Art

There is a vast area of information sources available today. In many instances that real differentiation to a consumer between each of these sources relates to the “freshness” of the data provided. This is particularly true when the data may change moment to moment.

Existing distributed network tools for analyzing data often employ delayed or historical data. Such tools when monitoring constantly changing data may produce analyses that are less than accurate. For example, systems that display financial data on a periodic refresh schedule, may lead a user to make erroneous decisions pertaining to a financial transaction, resulting in substantial financial losses. The continual display of stale data may over time reduce a user's confidence to an extent that the continuing quest for the data from an information source may be terminated.

The real-time distribution of rapidly changing data via other modes of communication, such as by wireless devices such as cell phones, has been shown to be very useful in a number of contexts. Real-time access to information is a goal of many technological companies. For example, the real-time provision of financial information has been shown to be highly desired by many investors, with numerous entities being consumers of such services of Reuters world wide that provide real-time financial information at client sites in a controlled network.

The so-called Internet is a widely distributed decentralized network. The World Wide Web makes a system of internet servers that support documents in HyperText markup Language (“HTML”) which support links to other documents. Web pages may contain hypertext links that are used to connect to any combination of graphics, audio, video and text, in a non-linear or non-sequential manner HyperText Transfer Protocol (“HTTP”) references the underlying protocol employed by the World Wide Web, a protocol that defines how messages are formatted and transmitted and what actions Web servers and browsers should take in response to various commands. HTTP is a stateless protocol wherein each command is executed independently without any knowledge of the commands that came before. An HTTP client initiates a request by establishing a Transmission Control Protocol (TCP) connection to a particular port on a remote host (port 80 by default). An HTTP server listening on that port waits for the client to send a Request Message. The HTTP specification, such as HTTP/1.1 (RFC 2068), designates the rules for transfer. Web pages are obtained at Web servers by use of the Uniform Resource Locator, the global address of resources on the World Wide Web.

HTTP specification 1.1., dated January 1997, referred to as HTTP/1.1 (RFC 2068), the specification of which is hereby incorporated by reference, permits a chunking option. The chunking option refers to a transfer coding implementation that allows a body of a message to be transferred as a series of chunks, so-called “chunked data.” Each chunked data is sent with its own size indicator, followed by an optional footer containing entity-header fields. Chunking envisions sending along with the entire message the size of the message.

As the World Wide Web has become the source of information for many consumers, including those seeking financial information, it would be advantageous if persons could access real-time, dynamic data, such as financial data, over a widely distributed network as the Internet, in particular using the World Wide Web.

Dynamic content has been allowed to be created in Web pages using the Common Gateway Interface (CGI). CGI calls or procedures enable applications to generate dynamically created HTML output, thus creating Web pages with dynamic content. However, retrieval of data is linked to when the Web page is invoked.

Some have suggested taking advantage of the HTTP protocol to cause a true stream of dynamic data. U.S. Pat. No. 6,754,621 to Cunningham et al. discloses prolonged streaming of data is achievable by specifying a reasonably large value as the content-length of the HTTP response packet. Data streaming may be continued when the transmitted data reaches the specified length when a new request/response exchange is initiated such that streaming of the financial data carries on from the point it left off. U.S. Pat. No. 6,412,009 to Erickson et al. utilizes a chunking option specified in the HTTP specification 1.1, dated January 1997 to send a series of HTTP messages with embedded session-oriented data between the Web server and the Web client without sending an end chunk message to cause the connection to remain active to series of interleaved HTTP messages between the Web server and the Web client, thereby creating an HTTP tunnel that is persistent for the duration of the communication between the host system and the Web client. (forming a persistent virtual connection between two endpoints of the connection-oriented protocol). U.S. Patent Publication No. 20020161853 To Burak et al. also discloses a real-time financial charting system of stock market pricing information over a browser-only interface by obtaining data pushed from a server over the World Wide Web making use of HTTP tunneling.

SUMMARY OF THE INVENTION

There is provided a method for dynamically sending pushed streamed data through a web-based system, said method comprising: (a) chunking the data as per HTTP specifications; (b) setting the chunk response size in the header to a non-specified value; (c) transmitting the chunked data to a web-based client.

Further embodiments included:

A method for dynamically displaying data through a web-based system, the method comprising: (a) establishing a connection with a web server; (b) receiving from said web server a pushed streamed set of HTTP conforming signals lacking a specified HTTP stop to the signal; (c) dynamically displaying the pushed streamed set of signals. Optionally such system employs, at the client side, JavaScript to establish the streaming connection.

As would be understood by one of ordinary skill in the art, wherein the term “JavaScript” is used herein, other types of executable programs having similar functionality could be used.

A method in a HTTP protocol based system comprising a proxy server connected over secure lines to more than one web server, and over the world wide web to one or more client browsers, said method comprising the steps of: (a) receiving at the proxy server a request signal from a client browser seeking financial data; (b) searching at the proxy server said more than one web servers to obtain relevant financial information to said request; (c) generating at said proxy server a pushed streamed set of HTTP conforming signals without a specified stop to the signal; (d) continually streaming financial data related to said request until the client is disconnected from the HTTP protocol based system.

Method embodiments proffer the advantage of permitting streaming behavior wherein the web applications is updated in real-time without user refresh. Further, embodiments permit dynamic screen updates of web applications. Static web pages can be converted into dynamic pages by including keywords therein.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a flow chart representation of the Streaming Data Subscription Process of the present invention.

FIG. 2 is a continuation of the flow chart representation of the Streaming Data Subscription Process shown in FIG. 1 of the present invention.

FIG. 3 is a further continuation of the flow chart representation of the Streaming Data Subscription Process shown in FIG. 1 of the present invention.

DETAILED DESCRIPTION OF THE INVENTION

The present invention generally relates to a system and method for dynamic updating of display windows using a pushed stream of data.

Turning to FIG. 1, there is shown an exemplary streaming data subscription process and update method for a single application using html tags. At step 1 user logs onto the framework server 45 via Internet Explorer 40 or other browser. At step 2 framework server 45 returns html content, including the definition for a streaming Iframe with Javascript. Application Iframes in such example with URLs pointing to the independent applications. At step 3, the streaming Iframe establishes a new http connection to the framework server 45. The framework sets the response type to chunked response and sets the response size to a non-specified value. This will leave the connection open. At step 4, once the application Iframe receives the response, framework JavaScript scans the quote content for keywords that mark the data elements requiring real time updates. Information about the real time data fields and their location ids are sent to the framework server. At step 5, the application content includes JavaScript to process the updates. The application registers the JavaScript function call with the streaming Iframe. The framework server 45 starts sending updates to browser 40 through the streaming connection at step 6 to hidden Iframe for processing streaming data 50. Hidden Iframe 50 at step 6 a, examines the incoming updates, notices the registered JavaScript callback and calls the callback with the new data. This mechanism may be used by applications that show cumulative data, for example a charting application. In application 55, keywords mark the elements requiring real time updates.

Turning to FIG. 2, there is shown an exemplary streaming data subscription process and update method for multiple applications with shared data using html tags. As in FIG. 2, the process starts at step 11 by the user logging into framework server 45. The framework then returns at step 12 html content, including definition for the streaming Iframe with Javascript and application Iframes set with URLS pointing to the independent applications. The streaming Iframe establishes a new http connection at step 13 to the framework server 45 which sets the response type to chunked response and sets the response size to a non-specified value. This will leave the connection open. At step 14 the quote application is initialized. The html of the quote application is scanned for special elements that define data that should be streamed. The request is then formatted and the subscription sent to the server. The server process the quote subscription at step 15. A unique id for each field is sent back to the client and mapping is set up such that updates can be mapped to html elements. At step 16, the Flex Monitor application is initialized. The html of the chart application is scanned for special elements that define data that should be streamed, and the request is formatted and the subscription sent to the server. The Flex monitor subscription is received at the framework server at 17 with common subscription data being detected and shared id mappings set up. The server processes the chart subscription at step 18, the shared id for each field is sent back to the client, and mapping is set up such that updates can be mapped to html elements. Updates are then streamed to the client at step 19, with the update containing shared id from step 8 and the value for the update. The streaming Iframe at 20 examines the incoming updates, notices that the update applies to multiple applications and modifies the real time data elements in all the applications with the latest updates using, for example, DHTML.

And further turning to FIG. 3, there is shown an exemplar streaming data subscription process with updates for single application using html tags. In the exemplary process, the user logs into framework server 45 at 21, and the framework at 22 returns html content, including the definition for the streaming Iframe with Javascript. The application Iframes are set with URLs pointing to the independent applications. At 23 the streaming Iframe establishes a new http connection to the framework server 45, and the framework sets the response type to chunked response and set the response size to a non-specified value. This will leave the connection open. Once the application Iframe receives the response at 24, framework JavaScript scans the quote content for keywords that mark the data elements requiring real time updates. Information about the real time data fields and their locations ids are sent to the framework server 45 through a new http connection. In step 25 the framework server starts sending updates through the streaming connection. At 26, the streaming Iframe examines the incoming updates and modifies the real time data elements with the latest updates, using, for example, DHTML. As shown, at the application level 55, keywords mark the elements requiring real time updates.

Statement Regarding Preferred Embodiments

While the invention has been described with respect to preferred embodiments, those skilled in the art will readily appreciate that various changes and/or modifications can be made to the invention without departing from the spirit or scope of the invention as defined by the appended claims. All documents cited herein are incorporated by reference herein where appropriate for teachings of additional or alternative details, features and/or technical background. 

1. A method in a Hypertext Transfer Protocol (HTTP) system comprising: transmitting from a client a request for data from a web server over a first HTTP connection between the client and the web server; receiving at the client a definition for a streaming IFrame for establishing a second HTTP connection between the client and the web server; establishing by the steaming IFrame the second HTTP connection between the client and the web server; receiving continually at the client a pushed streamed set of HTTP responses from the web server, including the requested data, lacking a specified HTTP stop to the signal; and dynamically updating at the client the requested data for display in real-time without user refresh until the client is disconnected from the HTTP system.
 2. The method of claim 1 wherein the web server is a proxy server operatively connected to one or more web servers.
 3. The method of claim 1 wherein the web server is the World Wide Web server.
 4. The method of claim 1 further comprising the step of: registering the streaming data with a JavaScript function call.
 5. The method of claim 1 wherein the requested data is financial data.
 6. The method of claim 2 wherein the requested data is received from one or more web servers via the proxy server.
 7. A system comprising: a client processor operatively configured for transmitting to a web server a request for data over a first HTTP connection between the client and the web server; receiving a definition for a streaming IFrame for establishing a second HTTP connection between the client and the web server; establishing by the steaming IFrame the second HTTP connection between the client and the web server; and receiving continually at the client a pushed streamed set of HTTP responses from the web server, including the requested data, lacking a specified HTTP stop to the signal; and a client display operatively configured for dynamically updating the requested data received by the client processor for display in real-time without user refresh until the client is disconnected from the HTTP system.
 8. The system of claim 8 wherein the web server is a proxy server operatively connected to one or more web servers.
 9. The system of claim 8 wherein the web server is the World Wide Web server.
 10. The method of claim 8 further comprising the step of: registering the streaming data with a JavaScript function call.
 11. The system of claim 8 wherein requested data is financial data.
 12. The system of claim 9 wherein the requested data is received from one or more web servers via the proxy server. 